//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Lapiz.h"
//---------------------------------------------------------------------------
Lapiz::Lapiz(){
        _posicion=new PV2D();
        _direccion=0.0;
}

Lapiz::Lapiz(PV2D* posicion, GLfloat direccion){
        _posicion=posicion;
        _direccion=direccion;
}

void Lapiz::moveTo(GLdouble x, GLdouble y){
        if(_posicion!=NULL){
                delete _posicion;
        }
        _posicion=new PV2D(x,y,1);
}
void Lapiz::moveTo(PV2D* p){
        if(_posicion!=NULL){
                delete _posicion;
        }
        _posicion=p;
}
void Lapiz::lineTo(GLdouble x,GLdouble y){
        glBegin(GL_LINES);
                glVertex2f(_posicion->getX(),_posicion->getY());
                glVertex2f(x,y);
        glEnd();
        moveTo(x,y);
}
void Lapiz::lineTo(PV2D* p){
        glBegin(GL_LINES);
                glVertex2f(_posicion->getX(),_posicion->getY());
                glVertex2f(p->getX(), p->getY());
        glEnd();
        moveTo(p);
}
void Lapiz::turnTo(GLfloat ang){
        _direccion=ang;
}
void Lapiz::turn(GLfloat ang){
        _direccion+=ang;
}
void Lapiz::forward(GLfloat dist, bool isVisible){
        GLdouble x,y;

        x=_posicion->getX()+cos(_direccion)*dist;
        y=_posicion->getY()+sin(_direccion)*dist;

        if(isVisible){
                lineTo(x,y);
        }else{
                moveTo(x,y);
        }
}




//---------------------------------------------------------------------------

#pragma package(smart_init)
